#define BOOL char
#define true 1
#define false 0

// we design a linked list to record the files
struct SanSrcFileCovInfo {
  char* filename;
  uint64_t* array;
  size_t size;
  void* next;
};

void __san_cov_dump();
void __san_cov_register();
void __init_san_cov_srcfile(struct SanSrcFileCovInfo* info);
void __san_cov_signal_handler(int sig);
void __san_cov_abort();
void __san_cov_append_info(uint64_t* array, BOOL *is_initialized, char* filename, size_t size);
void __san_cov_trace_pc(uint64_t* array, size_t id, BOOL *is_initialized, char* filename, size_t size);
void __san_cov_trace_pc2(uint64_t* array, size_t id);